package com.wxapp.market.service.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wxapp.common.constant.pojo.vm.ResultVm;
import com.wxapp.common.constant.pojo.vo.UserVo;
import com.wxapp.market.api.pojo.vm.coupon.PCouponDetailVm;
import com.wxapp.market.api.pojo.vm.coupon.PCouponGoodsVm;
import com.wxapp.market.api.pojo.vm.coupon.PCouponListVm;
import com.wxapp.market.api.pojo.vm.coupon.PCouponPageVm;
import com.wxapp.market.api.pojo.vo.coupon.QCouponAddVo;
import com.wxapp.market.api.pojo.vo.coupon.QCouponPageVo;
import com.wxapp.market.api.pojo.vo.coupon.QCouponUpdateVo;

import java.util.List;

/**
 * @author lgl
 * @Description 优惠券管理
 * @Datetime 2022/7/4 16:13
 * @Modified By
 */
public interface CouponService {
    ResultVm<String> add(QCouponAddVo qCouponAddVo, UserVo userVo);

    ResultVm<String> update(QCouponUpdateVo qCouponUpdateVo, UserVo userVo);

    ResultVm<Page<PCouponPageVm>> getPage(QCouponPageVo qCouponPageVo);

    ResultVm<String> delete(String id);

    ResultVm<PCouponDetailVm> detail(String id);

    ResultVm<String> addGoods(String id, List<String> productId);

    ResultVm<List<PCouponGoodsVm>> getGoods(String id);

    ResultVm<List<PCouponListVm>> getList(UserVo userVo, String productId);

    ResultVm<String> receive(UserVo userVo, List<String> couponIds);

    ResultVm<Integer> getCouponCount(String userId);
}
